Some existing systems treat all virtual machines (VMs) as black boxes, whose internal activities are assumed to be legitimate and needing the best service possible. Under some existing approaches, a VM has the same amount of processing resources or the same storage priority independent of what applications the VM is executing, whether or not the user is active or idle. In some existing systems, shares of resources initially allocated to VMs are not adjusted.
However, for many VMs, and especially for virtual desktop interfaces (VDIs), prioritizing the value of operations executed by the VM allows a system to make better scheduling and resource allocation decisions. Even in systems where service level agreements (SLAB), terms of service (TOS), quality of service (QoS), or other policies allocate different levels of resources between VMs, those systems usually do not evaluate whether an individual VM is optimizing use of the resources allocated to that VM. For example, some applications are prioritized by users over other applications, but under some existing systems no change is made to the allocated resources based upon whether or not a VM is executing a priority application. Likewise, in some examples, resources may be allocated to VMs which are idle, because the idle or active status of the VM is not considered by the scheduling system.
Corresponding reference characters indicate corresponding parts throughout the drawings.